package com.pi.shisan.test.client.util;

import io.netty.channel.Channel;

public class FackGpio {

    public static Channel channel;

    public static void setByteBuf(Channel c) {
        FackGpio.channel = c;
    }

    public static void digitalWrite(int addr, int data) {
//        byte[] b = new byte[10];
//        byte[] d = ByteUtil.shortToByte(4);
//        int index = 0;
//        System.arraycopy(d,0,b,index,d.length);
//        index += d.length;
//        d = ByteUtil.intToByte(addr);
//        System.arraycopy(d,0,b,index,d.length);
//        index += d.length;
//        d = ByteUtil.intToByte(data);
//        System.arraycopy(d,0,b,index,d.length);
//        channel.writeAndFlush(b);
        channel.write((short)4);
        channel.write((short)8);
        channel.write(addr);
        channel.writeAndFlush(data);
    }

    public static void wiringPiSetup() {
        channel.writeAndFlush((short)2);
        channel.write((short)0);
    }

    public static void pinMode(int g, int mode) {
//        byte[] b = new byte[10];
//        byte[] d = ByteUtil.shortToByte(3);
//        int index = 0;
//        System.arraycopy(d,0,b,index,d.length);
//        index += d.length;
//        d = ByteUtil.intToByte(g);
//        System.arraycopy(d,0,b,index,d.length);
//        index += d.length;
//        d = ByteUtil.intToByte(mode);
//        System.arraycopy(d,0,b,index,d.length);
//        channel.writeAndFlush(b);
        channel.write((short)3);
        channel.write((short)8);
        channel.write(g);
        channel.writeAndFlush(mode);
    }

    public static void close() {
        channel.writeAndFlush((short)0);
        channel.write((short)0);
    }
}
